import gmpy2
import libnum

p=9311389858490364943720442507785055171284652087229819685825097201889131032147259180480486964464071289391134460834678366517191750266970473336556845313099299
q=11591898166184703407170679039468830396172686422497264355129193372385309176446185445291532443964976728310025509569413731127733013564906117798148077662926901
r=7574044323095532570708874898079912819078129425978705352911750180288319220089479831579074114970296032516798538410455385107525890661740100367688530443421677
c = 254405107303005845049072747258149485455665434531849341949389151702896351704377285067476806399735915847551051984934926645265066676195182212668342809240170275111601925685425108739633735306028738440813976431594863569098420495195211247259496523691182750966814434291138671594822376699489067358139495566395880145059037908529964205911131567968259107857590036018068978645060903255984751462867095474972084318246942230515795372922732450012495738566643657477922873319803490046893484493433788181603654210794341892738158118219924980457355211094042834795257379632330516037706451375827720587904837405865838650441538283621256535491641274818330647441525602168055479178687963531914961778234475318884588150397234095722213462400828744953497197126537474009027706337497767417837993861139340860874583027430907228716660953102425009174890588920766879848601641875277580421221804043645286722094547226197336752873572741091909840169196029400597100303993

n = p*p*p*q*q*r
# phi =(p*p*(q-1))*(p*(p-1))*(r-1) 无逆元

# 可以换成phi(p*q*r)和n的逆元，那么他们就在模p*q*r下成立

phi_qpr = (p-1)*(q-1)*(r-1)
d= libnum.invmod(n,phi_qpr)

for i in range(1,8,1):
    m = pow(c,d,q*p*r)
    flag = libnum.n2s(libnum.nroot(m,i))
    if b'flag' in flag:
        print(i)
        print(flag.decode())
# flag{th1s-i5-7he-fla9}

